package com.treeengine.game.screen;

import com.treeengine.game.IGame;
import com.treeengine.game.World;
import com.treeengine.game.WorldRenderer;
import com.treeengine.game.camera.ICamera;
import com.treeengine.game.graphics.Graphics;
import com.treeengine.game.math.Vector2;

public abstract class Screen {
	protected enum ScreenState{
		READY,
		RUNNING,
		PAUSED,
		LEVEL_END,
		GAME_OVER;
	}
	
	protected final Graphics graphics;
	protected final IGame game;
	
	protected ScreenState state;
	protected ICamera camera;
	protected Vector2 touchPoint;
	//protected StriteBatcher batcher;
	protected World world;
	protected WorldRenderer renderer;
	
	public Screen(IGame game, ICamera camera, World world, WorldRenderer renderer){
		this.game = game;
		graphics = this.game.getGraphics();
		
		state = ScreenState.READY;
		this.world = world;
		this.renderer = renderer;
		
		touchPoint = new Vector2();
		
		
	}
	
	public abstract void update(float deltaTime);
	
	public abstract void draw(float deltaTime);
	
	public abstract void pause();
	
	public abstract void resume();
	
	public abstract void dispose();
	
}
